package cn.tedu.charging.account.service;

import cn.tedu.charging.account.pojo.entity.User;
import cn.tedu.charging.account.pojo.param.UserAddNewParam;
import cn.tedu.charging.account.pojo.vo.UserLoginResultVO;
import cn.tedu.charging.account.pojo.vo.UserStandardVO;
import org.springframework.transaction.annotation.Transactional;

import java.util.Map;

/**
 * 处理用户数据的业务接口
 *
 * @author wyy
 * @version 1.0
 */
@Transactional
public interface IUserService {

    /**
     * 用户登录
     *
     * @param openId 用户openId
     * @return 返回根据openId查询用户信息
     */
    UserLoginResultVO login(String openId);


    /**
     * 添加用户
     *
     * @param userInfo 微信用户信息
     * @param openId 用户openId
     * @return 返回添加的用户信息
     */
    UserLoginResultVO sign(Map<String, Object> userInfo, String openId);

    /**
     * 删除用户
     *
     * @param id 用户ID
     */
    void delete(String id);

    /**
     * 根据手机号码查询用户
     *
     * @param phone 手机号码
     * @return 匹配的用户信息
     */
    UserStandardVO getStandardByPhone(String phone);

    /**
     * 根据openId码查询用户
     *
     * @param openId
     * @return 匹配的用户信息
     */
    UserStandardVO getStandardByOpenId(String openId);

    /**
     * 根据id修改用户数据
     *
     * @param user 用户数据
     */
    void update(User user);

}
